package com.spsoft.system.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.spsoft.system.entity.NvatTrandtadvaltaxsep;
import com.spsoft.system.model.bo.official.InvoiceQueryBo;
import com.spsoft.system.model.vo.official.*;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author wangy
 * @description 针对表【NVAT_TRANDTADVALTAXSEP(交易数据信息表（共性字段表）
 * 注：对应数据模版字段包含共性字段（本表字段）+扩展信息字段，扩展信息字段对应表必须包含交易号、数据来源字段，采集数据时会将交易数据拆分成两部分数据。业务类型字段在数据采集时，按照业务梳理的给交易数据打上业务类型字段标识。
 * 如果应税判定字段不在扩展信息表在扩展表某个字段引用的其他表中，则以那张表的主键作为应税判定字段。
 * 数据采集时，如果没有交易客户编码的数据通过开户帐号与客户映射找到对应的客户编号来存储。
 * 该表的字段顺序请勿调整会影响批量开票存储过程。)】的数据库操作Service
 * @createDate 2024-01-04 13:05:39
 */
public interface NvatTrandtadvaltaxsepService extends IService<NvatTrandtadvaltaxsep> {
    List<InvoiceFlowQueryVO> queryByYwbh(InvoiceQueryBo dto);

    /**
     * 根据交易机构查询纳税人识别号
     * @param jyjg
     * @return
     */
    String queryNssbhByJyjg(String jyjg);

    /**
     * 根据交易日期和业务编号查询交易流水信息
     * @param jrrq
     * @param ywbh
     * @return
     */
    List<TransactionFlowVO> queryByJyrqYwbh(String jrrq, String ywbh);

    /**
     * 根据rdid修改流水状态
     * @param lszt 流水状态
     * @param rdidList rdid集合
     * @return 更新数据条数
     */
    int updateLsztByRdids(Integer lszt, List<Long> rdidList, Integer conditionLszt, boolean clearWkpjeFlag);

    /**
     * 根据rdid查询电子发票平台开票需要的开票明细
     * @param rdidList
     * @return
     */
//    List<TransactionFpmxVO> queryDzfpKpmxByRdids(List<Long> rdidList);

    /**
     * 根据交易机构id查询开票交易机构信息
     * @param jyjg
     * @return
     */
    KpjgInfoVO queryKpjgInfoByJyjg(String jyjg);

    /**
     * 开票失败后回滚交易流水状态
     * @param jylsList
     * @return
     */
    boolean rollbackLszt(List<NvatTrandtadvaltaxsep>  jylsList);

}
